package com.oro.domain;

import static javax.persistence.InheritanceType.TABLE_PER_CLASS;

import java.io.Serializable;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;

/**
 * Entity implementation class for Entity: Indirizzo
 * 
 */
@Entity
@Inheritance(strategy = TABLE_PER_CLASS)
public abstract class Indirizzo implements Serializable {

	private static final long serialVersionUID = 1L;

	private String citta;

	@Id
	@GeneratedValue(strategy = GenerationType.TABLE)
	private Long id;

	private String indirizzoLinea1;
	private String indirizzoLinea2;

	private String paese;

	public Indirizzo() {
		super();
	}

	public Indirizzo(String indirizzoLinea1, String citta, String paese) {
		this();
		setIndirizzoLinea1(indirizzoLinea1);
		setCitta(citta);
		setPaese(paese);
	}

	@Override
	public boolean equals(Object o) {
		if (this == o)
			return true;
		if (o != null)
			if (o instanceof Indirizzo)
				if (getId() != null && this.getId() != 0L)
					return this.id.equals(((Indirizzo) o).getId());
				else
					return this.getIndirizzoLinea1().equals(
							((Indirizzo) o).getIndirizzoLinea1())
							&& this.getCitta().equals(
									((Indirizzo) o).getCitta())
							&& this.getPaese().equals(
									((Indirizzo) o).getPaese());
			else
				return false;
		else
			return false;

	}

	public String getCap() {
		return null;
	}

	public String getCitta() {
		return this.citta;
	}

	public Long getId() {
		return id;
	}

	public String getIndirizzoLinea1() {
		return this.indirizzoLinea1;
	}

	public String getIndirizzoLinea2() {
		return this.indirizzoLinea2;
	}

	public String getPaese() {
		return paese;
	}

	// Fake attributes for compatibility
	public String getPostCode() {
		return null;
	}

	public String getStato() {
		return null;
	}

	public String getZip() {
		return null;
	}

	public void setCap(String c) {
	}

	public void setCitta(String citta) {
		this.citta = citta;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public void setIndirizzoLinea1(String indirizzoLinea1) {
		this.indirizzoLinea1 = indirizzoLinea1;
	}

	public void setIndirizzoLinea2(String indirizzoLinea2) {
		this.indirizzoLinea2 = indirizzoLinea2;
	}

	public void setPaese(String paese) {
		this.paese = paese;
	}

	public void setPostCode() {
	}

	public void setStato(String stato) {
	}

	public void setZip() {
	}
}
